package com.xyf.sys.service;

import com.xyf.sys.domain.Role;
import com.xyf.sys.domain.UserOrderEvent;
import com.xyf.sys.vo.UserEventStatistic;

import java.util.List;

/**
 * @Author R-H
 * @Date 2024/5/11606
 * @Description
 */
public interface IUserOrderEventService {

    List<UserOrderEvent> list(String dictType);

    boolean addUserData(String userId, Long deptId, String orderId, String orderProductId, Integer type);

    List<UserOrderEvent> getUserData(String userId, String status);

    List<UserOrderEvent> getUserData(Long deptId, String status);

    List<UserOrderEvent> getUserData(String userId, String status, Integer eventType);

    List<UserOrderEvent> getUserData(Long deptId, String status, Integer eventType);

    boolean removeUserData(Long id, String userId, Long deptId);

    boolean clear(String userId, Long deptId);

    int count(String userId, Integer type);

    String generateCode(String userId, Integer type);

    void lastEvent(String orderId, String orderProductId, Integer eventType);

    List<UserEventStatistic> statistic(String userId, Long deptId);

    void addInitEvent(String userId, Long deptId, String orderId, String orderProductId);

    void verify(String roleKey, Integer type);

    void verifyUniformity(String userId, int type);

    void verifyUniformity(Long deptId, int type);

    UserOrderEvent getUserOrderEvent(String userId, Long deptId, String orderId, String orderProductId, Integer type, String status);

    void update(UserOrderEvent orderEvent);
}
